Skip to content

Upgrade tool added#6

Closed
zekelinAlex wants to merge 2 commits intoTALXIS:masterfrom
zekelinAlex:users/alexander.zekelin/UpgradeTool
Closed

Upgrade tool added#6
zekelinAlex wants to merge 2 commits intoTALXIS:masterfrom
zekelinAlex:users/alexander.zekelin/UpgradeTool

Conversation

@zekelinAlex
Copy link
Copy Markdown

No description provided.

TomProkop added a commit that referenced this pull request Apr 26, 2026
Fixes for 6 Copilot review comments:
#1: NuGet property name — verified working (false positive, hyphens preserved)
#2-4: URL-encode OData $filter values using Uri.EscapeDataString, matching
      existing DataverseQueryService.BuildODataQueryPath pattern
#5: Guard Path.GetDirectoryName returning null for plain filenames in export
#6: Move try/finally to wrap Pack() call so temp ZIP is cleaned up on failure

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
TomProkop added a commit that referenced this pull request Apr 29, 2026
…logging

Issue #2A: EntityJsonConverter auto-wraps OptionSetValue/Money/MultiSelect
- New overload JsonToEntity(entityLogicalName, json, metadata) accepts EntityMetadata
- ConvertJsonValue wraps int→OptionSetValue for picklist/status/state columns
- ConvertJsonValue wraps decimal→Money for money columns
- Bare GUID strings auto-wrapped as EntityReference for single-target lookups
- JSON arrays → OptionSetValueCollection for multi-select picklists
- OptionSetValueCollection serialized as JSON array in WriteAttribute
- Shared FetchEntityMetadataAsync helper (no duplication between services)
- Fresh metadata per operation (no cache — CLI mutates schema)

Issue #2B: OptionSet values surfaced in CLI
- EntityAttributeRecord gains OptionSetName + OptionValues fields
- entity describe now shows OptionSet column for picklist/status/state columns
- New 'entity optionset global describe <name>' command shows all values+labels
- IDataverseOptionSetService.DescribeGlobalOptionSetAsync added

Issue #3: MCP output path resolution logging
- RootsService warns when no workspace roots available from client

Issue #5: Post-action failure recovery instructions
- ComponentCreateCliCommand detects leftover .template.scripts/.template.temp dirs
- Appends recovery hints to failure message

Issue #6: Data tool descriptions updated
- bulk_create and record_create descriptions document auto-type-detection

Issue #7: sln add stdout surfaced on success
- AddProjectsToSlnPostActionProcessor logs stdout (catches 'already contains')

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
TomProkop added a commit that referenced this pull request Apr 29, 2026
…logging

Issue #2A: EntityJsonConverter auto-wraps OptionSetValue/Money/MultiSelect
- New overload JsonToEntity(entityLogicalName, json, metadata) accepts EntityMetadata
- ConvertJsonValue wraps int→OptionSetValue for picklist/status/state columns
- ConvertJsonValue wraps decimal→Money for money columns
- Bare GUID strings auto-wrapped as EntityReference for single-target lookups
- JSON arrays → OptionSetValueCollection for multi-select picklists
- OptionSetValueCollection serialized as JSON array in WriteAttribute
- Shared FetchEntityMetadataAsync helper (no duplication between services)
- Fresh metadata per operation (no cache — CLI mutates schema)

Issue #2B: OptionSet values surfaced in CLI
- EntityAttributeRecord gains OptionSetName + OptionValues fields
- entity describe now shows OptionSet column for picklist/status/state columns
- New 'entity optionset global describe <name>' command shows all values+labels
- IDataverseOptionSetService.DescribeGlobalOptionSetAsync added

Issue #3: MCP output path resolution logging
- RootsService warns when no workspace roots available from client

Issue #5: Post-action failure recovery instructions
- ComponentCreateCliCommand detects leftover .template.scripts/.template.temp dirs
- Appends recovery hints to failure message

Issue #6: Data tool descriptions updated
- bulk_create and record_create descriptions document auto-type-detection

Issue #7: sln add stdout surfaced on success
- AddProjectsToSlnPostActionProcessor logs stdout (catches 'already contains')

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
TomProkop added a commit that referenced this pull request Apr 29, 2026
…logging

Issue #2A: EntityJsonConverter auto-wraps OptionSetValue/Money/MultiSelect
- New overload JsonToEntity(entityLogicalName, json, metadata) accepts EntityMetadata
- ConvertJsonValue wraps int→OptionSetValue for picklist/status/state columns
- ConvertJsonValue wraps decimal→Money for money columns
- Bare GUID strings auto-wrapped as EntityReference for single-target lookups
- JSON arrays → OptionSetValueCollection for multi-select picklists
- OptionSetValueCollection serialized as JSON array in WriteAttribute
- Shared FetchEntityMetadataAsync helper (no duplication between services)
- Fresh metadata per operation (no cache — CLI mutates schema)

Issue #2B: OptionSet values surfaced in CLI
- EntityAttributeRecord gains OptionSetName + OptionValues fields
- entity describe now shows OptionSet column for picklist/status/state columns
- New 'entity optionset global describe <name>' command shows all values+labels
- IDataverseOptionSetService.DescribeGlobalOptionSetAsync added

Issue #3: MCP output path resolution logging
- RootsService warns when no workspace roots available from client

Issue #5: Post-action failure recovery instructions
- ComponentCreateCliCommand detects leftover .template.scripts/.template.temp dirs
- Appends recovery hints to failure message

Issue #6: Data tool descriptions updated
- bulk_create and record_create descriptions document auto-type-detection

Issue #7: sln add stdout surfaced on success
- AddProjectsToSlnPostActionProcessor logs stdout (catches 'already contains')

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
TomProkop added a commit that referenced this pull request Apr 29, 2026
…logging

Issue #2A: EntityJsonConverter auto-wraps OptionSetValue/Money/MultiSelect
- New overload JsonToEntity(entityLogicalName, json, metadata) accepts EntityMetadata
- ConvertJsonValue wraps int→OptionSetValue for picklist/status/state columns
- ConvertJsonValue wraps decimal→Money for money columns
- Bare GUID strings auto-wrapped as EntityReference for single-target lookups
- JSON arrays → OptionSetValueCollection for multi-select picklists
- OptionSetValueCollection serialized as JSON array in WriteAttribute
- Shared FetchEntityMetadataAsync helper (no duplication between services)
- Fresh metadata per operation (no cache — CLI mutates schema)

Issue #2B: OptionSet values surfaced in CLI
- EntityAttributeRecord gains OptionSetName + OptionValues fields
- entity describe now shows OptionSet column for picklist/status/state columns
- New 'entity optionset global describe <name>' command shows all values+labels
- IDataverseOptionSetService.DescribeGlobalOptionSetAsync added

Issue #3: MCP output path resolution logging
- RootsService warns when no workspace roots available from client

Issue #5: Post-action failure recovery instructions
- ComponentCreateCliCommand detects leftover .template.scripts/.template.temp dirs
- Appends recovery hints to failure message

Issue #6: Data tool descriptions updated
- bulk_create and record_create descriptions document auto-type-detection

Issue #7: sln add stdout surfaced on success
- AddProjectsToSlnPostActionProcessor logs stdout (catches 'already contains')

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant